package avicit.bdp.oss.utils.common;


import avicit.platform6.core.exception.BusinessException;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;

/**
 * @金航数码科技有限责任公司
 * @作者：developer
 * @邮箱：developer@avic-digital.com
 * @创建时间： 2020-10-16
 * @类说明：CheckParaUtils
 * @修改记录：
 * @注意事项：
 * @主要功能：处理字符串、Object异常、打印错误日志
 */
public class CheckParaUtils {
    /**
     * 检查Object类型参数合法性
     * @param obj
     * @param errMsg
     */
    public static void checkObjectValidity(Object obj, Logger logger, String errMsg) {
        if (obj == null) {
            printLogAndThrowException(logger, errMsg);
        }
    }

    /**
     * 检查Object类型参数是否为null，如果不是null，打印日志，抛异常
     * @param obj
     * @param logger
     * @param errMsg
     */
    public static void checkObjectNull(Object obj, Logger logger, String errMsg) {
        if (obj != null) {
            printLogAndThrowException(logger, errMsg);
        }
    }

    /**
     * 检查字符串类型参数合法性
     * @param para
     * @param errMsg
     */
    public static void checkStringValidity(String para, Logger logger, String errMsg) {
        if (StringUtils.isEmpty(para)) {
            printLogAndThrowException(logger, errMsg);
        }
    }

    /**
     * 记录日志，抛出异常信息
     * @param errMsg
     */
    public static void printLogAndThrowException(Logger logger, String errMsg) {
        logger.error(errMsg);
        throw new BusinessException(errMsg);
    }
}
